/*************************************************************************
    > File Name    : PageLib.h
    > Author       : LiuLei
    > Mail         : 2261459486@qq.com 
    > Created Time : 2022年11月29日 星期二 14时49分27秒
 ************************************************************************/

#ifndef __LL_PAGELIB_H__
#define __LL_PAGELIB_H__

#include "Configuration.h"
#include "DirScanner.h"

#include <vector>
#include <unordered_map>
#include <string>

using std::unordered_map;
using std::vector;
using std::string;
using std::pair;

class PageLib
{
public:
    PageLib(Configuration *conf, DirScanner &dirScanner);
    ~PageLib();

    void create();                                      //执行网页分析
    void storePageLib();                                //生成网页库
    void storeOffsetLib();                              //生成偏移库
    vector<string> getPageLib();                        //获取网页库
    unordered_map<int, pair<int, int>> getOffsetLib();  //获取网页偏移库

private:
    DirScanner                          &_dirScanner;
    Configuration                       *_config;
    vector<string>                      _pageLib;       //网页库，从下标0开始
    unordered_map<int, pair<int, int>>  _offsetLib;     //偏移库，从下标1开始
};

#endif
